Update toolchains for latest SDK; add CI - #61
Open
slipher wants to merge 16 commits into
Open
Conversation
slipher
commented
Aug 10, 2026
Member
- Improve test timeout behavior to try to avoid hanging forever (would be especially annoying on the CI)
- Update toolchains for latest Saigo release, including enabling GDB
- Fix some tests on Windows
- Add CI for running Scons builds and tests.
slipher
force-pushed
the
slipher/ci
branch
2 times, most recently
from
August 12, 2026 04:31
aaf07a7 to
2a16835
Compare
Member
Author
|
I added a commit moving the ARM build to the old version of the toolchain so that we can build NaCl stuff and run tests. |
slipher
force-pushed
the
slipher/ci
branch
2 times, most recently
from
August 13, 2026 03:20
2607c35 to
0d06a38
Compare
Member
|
Saigo 20260813 is out: It includes the ARM I renamed versions using a better scheme, the the old saigo download links are probably dead. |
On *nix platforms, try sending SIGINT first to a timed-out test process, then send SIGKILL after 3 seconds. This gives the test the chance to do cleanup, particularly of child processes. Contrary to the belief of a prior author, killing a process does not ensure that descendants of that process are also killed.
On Linux, GDB tests that got deadlocked (for example run_gdb_break_continue_thread_test on ARM) would cause command_tester.py to hang indefinitely because the GDB and sel_ldr processes continued to live after the main test process (the child of command_tester) was killed. Make the main test process respond to SIGINT by killing its children.
illwieckz's latest toolchain build https://github.com/DaemonEngine/saigo-nacl-sdk/releases/tag/v21.0-20260805 adds GDB and renames some binutils binaries. Update scons and run.py accordingly. Also delete the code for finding GDB in a 2nd variant of the NaCl toolchain.
But disable 2 tests on ARM that don't work without GDB speaking XML.
In 22bd955 I updated the expected return code for run_ntdll_intercept_test but neglected to do the same for run_ntdll_fallback_test.
The TestGettingRegisterSnapshotInSyscallContextSwitch part suspended the thread inside the syscall on all 10000 iterations on most runs. But when the thread did suspend outside it, the test seemingly always failed. The test for the stack pointer value was too strict.
Partial revert of commit 8ebf53f. Turns out this is still broken on x86-32.
I used the Azure Pipelines job skeleton from #39. But CMake stuff is replaced with Scons since that is the currently functional build system. All 64-bit platforms are running most tests. ARM Linux has the NaCl mode disabled due to SDK defects, so it only runs a few tests. x86 32-bit platforms build everything but don't run tests. Co-authored-by: Thomas Debesse <dev@illwieckz.net>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.